home *** CD-ROM | disk | FTP | other *** search
/ The Arsenal Files 8 / The Arsenal Files Collection #8 (Arsenal Computer) (1996).ISO / g_quake / qspy31.zip / QSPY.TXT < prev    next >
Text File  |  1996-09-13  |  18KB  |  429 lines

  1.                                Quake Spy 3.1, (c) 1996
  2.                                =======================
  3.  
  4. OFFICIAL HOME PAGE:
  5. -------------------
  6.  
  7.     Quake Spy now has an official home page.  You can get up to date
  8.     information about Quake Spy now by visiting:
  9.  
  10.     http://www.panix.com/~sheaslip/qspy/
  11.  
  12.     BIG thanks go out to Stephen Heaslip of blue's Quake Rag
  13.     (http://www.panix.com/~sheaslip/quake/ - your best source for
  14.     up to date Quake news) for the space and administration of this site.
  15.  
  16.     Thanks for the QSpy logo go to Devicer (devicer@earthlink.net).
  17.  
  18. BIRTH:
  19. ------
  20.  
  21.     This program was born out of a desire to quickly find a playable
  22.     Quake server.  I must have spent a week looking at the finger output
  23.     from Servers@ns.stomped.com and then manually pinging those IP
  24.     addresses looking for a server with a decent response time.  While
  25.     this accomplished my initial goal, it was hardly an acceptable
  26.     solution.  Hence, the birth of Quake Spy!
  27.  
  28. FEATURES:
  29. ---------
  30.  
  31.     * Gets a list of active Quake servers from the following sites:
  32.  
  33.           1. Finger servers@stomped.com
  34.       2. http://www.pipo.com/quake/quake.html
  35.       3. Finger vfuks@monmouth.com
  36.          (try Deicide's Quake Servers at http://www.monmouth.com/~vfuks)
  37.       4. User defined finger source
  38.       5. User defined http source
  39.       6. User defined http source
  40.       7. User defined http source
  41.       8. User defined http source
  42.  
  43.       Quake Spy is able to parse any finger or web page for IP addresses.
  44.       Just fill in the user defined areas and roll your own list!
  45.  
  46.     * Queries these sites for server name, map name, current and max
  47.       players.
  48.  
  49.     * Displays results in a list box in the following format:
  50.  
  51.       Average response time in ms, number of times the queries timed out,
  52.       the IP address of the server, the name of the server, the name of
  53.       the map currently being run by the server, the current number of
  54.       players on the server and the maximum allowed players on the server.
  55.  
  56.     * Launch Quake by double clicking on a server in the listbox.
  57.  
  58.       Be SURE to tell QSpy where Quake is by using the View/Options
  59.       button and selecting the Quake Page.
  60.  
  61.       (Don't do this under NT unless you have a native NT port of Quake.
  62.        Quake won't like it.)
  63.  
  64.     * Manually add and delete Quake servers to the list.
  65.  
  66.     * Save and reload the Quake server list.  This info is saved to a
  67.       file named QSpy.dat in your Quake directory.
  68.  
  69.     * Ability to copy the server list to the clipboard for further
  70.       user processing.
  71.  
  72.         * Ability to print the server list to your printer.
  73.  
  74.         * Refresh the server information of selected servers.  This command
  75.           will reping and requery player/rule data for the selected servers
  76.           and display the updated results.
  77.  
  78.     * Query servers for player/rule information.  Once the server list
  79.       has been populated, you can find out who is playing on a particular
  80.       server by activating the Quake Player Spy!  This process will
  81.       requery the selected server (possibly failing the filter checks)
  82.       and then will populate the Rule List with the server parameters
  83.       that particular server is using.  Next it populates the Player List
  84.       with the players' colors, names, IP address + port, how many frags
  85.       they currently have, and how long they've been connected to the
  86.       server.  You can sort this list on any of these items by clicking
  87.       on the column header or selecting the appropriate menu item.
  88.  
  89.         * After Quake Spy has completed it's initial server update, all the
  90.           players are stored in memory.  You can now search this player list
  91.           using the Player Query command on the server menu (toolbar button
  92.           coming soon).
  93.  
  94.     * Busy Server-Redial on selected servers.  If all of your favorite
  95.       servers are full, you can highlist them and then kick off the
  96.       Busy-Redial.  Quake Spy will continuously poll these servers until
  97.       it finds one that is no longer full of players.  It will then
  98.       either notify you of this fact or will go ahead and launch Quake!
  99.  
  100.     * When Quake Spy launches Quake, it now plays what we think is an
  101.           appropriate sound clip!
  102.  
  103.     * Resize the Quake Spy window to suit your preference.
  104.  
  105.     * Dynamically resize the different list controls by dragging 
  106.       splitter bars to suit your preference.
  107.  
  108. CONFIGURABLE OPTIONS:
  109. ---------------------
  110.  
  111.     . Quake Spy either stops its operations after Quake launches or it
  112.       terminates after successfully launching Quake.
  113.  
  114.     . Whether or not to auto-save the Quake Spy server list upon leaving
  115.       Quake Spy.
  116.  
  117.     . Whether to auto-load the (saved) server list upon program startup.
  118.  
  119.     . Whether to auto-start the update process upon program startup.
  120.  
  121.     . Where to get active Quake server list information
  122.  
  123.         . Whether to play an appropriate sound clip when launching Quake!
  124.  
  125.     . There are seven filter settings you can use to limit the output of
  126.       the server information gathering process:
  127.         
  128.     1. Display servers that return the Quake query request (i.e., they
  129.        are up and answering queries).
  130.     2. Display servers that are not full of players.
  131.     3. Display servers whose query requests timed out less than
  132.        the specified amount.
  133.     4. Display servers whose average response time is less than the
  134.        specified time.
  135.     5. Display servers whose map name starts with the specified
  136.        characters (e.g., 'dm' for servers only playing deathmatch
  137.        levels).
  138.     6. Display servers who map name does not start with the specified
  139.        characters (e.g., 'e1' to filter out servers running the
  140.        shareware levels).
  141.     7. Display servers who have more than the specified number of
  142.        players connected to them.
  143.  
  144.         . In addition to the filter options, you can choose whether you want
  145.           them applied after a refresh or player/rule update.
  146.  
  147.     . The directory where Quake is located on your system.  You must
  148.       use a full drive/path specifier here (e.g., "E:\GAMES\QUAKE").
  149.  
  150.     . What command line options to pass to Quake when you launch it.
  151.       You must not include a drive/path specifier here.  That is,
  152.       don't do this "E:\GAMES\QUAKE\Q95.BAT".  Just use "Q95.BAT"
  153.       instead.
  154.     
  155.     . Include connection scripts aliases:
  156.  
  157.       . qlist: displays a list of the top 10 servers Quake Spy
  158.                    found.
  159.  
  160.       . s<#>:  connect to the specified server in the qlist alias.
  161.  
  162.     . Allow an automatic disconnect and display a top 10 list
  163.       of servers while in Quake and specify which character to
  164.           bind this to (be sure this character is lower case).
  165.          
  166.       Something to be aware of:  If you do this and later decide
  167.       you don't want this binding, you'll have to go and remove
  168.       the bind command from the config.cfg file in the id1
  169.           directory.  A later version of Quake will fix this.
  170.  
  171.     . Whether you want to use multithreaded queries for the Quake Spy
  172.       server update process.  Quake Spy used to do pings/queries one
  173.       server at a time.  This routine has been revised to use
  174.       multiple threads if you so desire.  That is, Quake Spy will 
  175.       simultaneously query multiple servers thereby speeding up the
  176.       query process immensely!
  177.  
  178.       KNOWN PROBLEM:  When using multithreading, the ping times reported
  179.                           are somewhat inflated.
  180.         
  181.         . If you choose the above option, how many threads you want this
  182.       process to use.  We've tested this process with up to twenty
  183.       threads.  If you feel we should allow more than this, then pipe
  184.       up.
  185.  
  186.     . How long to wait for a response from the query for info before
  187.       the request times out.  If you are getting a lot of servers that
  188.       don't return any info, try increasing this parameter.
  189.  
  190. MISC INFO:
  191. ----------
  192.  
  193.     This release has been tested and (to the best of our knowledge) will
  194.     only work with Windows 95/NT3.51/NT4.0.
  195.  
  196.     Quake Spy makes use of MFC42.DLL and MSVCRT.DLL.  If you downloaded
  197.     the stand alone verion of Quake Spy and you do not have these files
  198.     in your SYSTEM directory, then you should get QSPYRT24.ZIP from the
  199.     same place you got this file.
  200.  
  201.     If it's not included, check ftp.cdrom.com for this file:
  202.  
  203.     /pub/idgames2/utils/network_serial/server_picker/qspy24rt.zip
  204.  
  205.     Or
  206.  
  207.     The Official Quake Spy home page:
  208.  
  209.     http://www.panix.com/~sheaslip/qspy/
  210.  
  211.     If you still can't get it, then you're SOL!  Just kidding...you can
  212.     request a copy from us, and we'll be glad to mail it to you (only do
  213.     this as a last resort though).
  214.  
  215. DISTRIBUTION STATUS:
  216. --------------------
  217.  
  218.     Quake Spy is freeware...with the following provisions:
  219.  
  220.     If you use Quake Spy, send us an email.  Do you like Quake Spy?  Do
  221.     you have any suggestions on how to improve it?  We want to get a feel
  222.     for what you guys think/want.
  223.  
  224.     If you feel compelled to show us how much you appreciate Quake Spy,
  225.     we will kindly accept monetary donations of any amount ;-)
  226.  
  227. AUTHORS:
  228. --------
  229.  
  230.     Joe Powell (Team Leader), jep@sclsis.navy.mil (preferred)
  231.                 or powelljo@jaxmail.navy.mil
  232.        (10 years of C, 2 months of MFC C++ programming experience)
  233.            
  234.        The initial idea for QSpy came from me.  Tim got me started with
  235.        the network code.  Then, I took it from there and developed it
  236.        into the app we all know and love!
  237.  
  238.     Tim Cook (Network Guru), cookti@jaxmail.navy.mil.
  239.        (9 years of C, 3 years of C++ programming experience)
  240.        
  241.        Tim wrote most of the networking code in QSpy.  His latest
  242.        contribution has been the multithreaded queries!  Yea Tim!
  243.        
  244.        Tim is the C++ guru of the team. In the earlier versions of QSpy,
  245.            I'd wander over to Tim's cube every now and then and ask, "Hey
  246.            Tim, how do you do this in C++?"
  247.  
  248.     Jack Mathews (MFC, UI Guru), jack@opportunist.com
  249.        (5 years of C, 1.5 years of MFC C++ programming experience)
  250.        
  251.        Jack is the newest member of the QSpy team.  His initial
  252.        contributions have been some resizing enhancements, splitter
  253.        bars between the list controls, player list (colored icons and
  254.        sorting) enhancements, and rules list implementation.
  255.        
  256.        Since neither Tim or I had ever done anything with MFC before
  257.        QSpy, we were both learning as we went along.  When Jack offered
  258.        to help us out, we jumped at the chance!
  259.         
  260. TODO
  261. ----
  262.  
  263.         Make number of servers listed in QLIST an option (suggested).
  264.     Ability to specifiy a specific CFG file for a server (suggested)?
  265.     Option to not ping on load (suggested).
  266.     Add comments field to server list?  Keep seperate data file
  267.            (suggested)?
  268.     Show player/rule with left click on server list (suggested)?
  269.     Search function on edit menu to find servers (suggested).
  270.     Calculate/Display server statistics (total servers, average
  271.            friction, etc)?
  272.     Add column sorting on the server listctrl.
  273.     RMB popup server menu (suggested).
  274.     Option to save filtered server list instead of entire list
  275.        (suggested).
  276.     Add property page setting to allow user to select sound clip.
  277.     Add Quake property page button to select Quake directory.
  278.     PLAY more Quake!
  279.  
  280. REVISION HISTORY
  281. ----------------
  282.  
  283. v3.1    09/13/96
  284.         Left click on server list will populate player/rule listctrls
  285.            (with data in memory -- possibly out of date) (JP).
  286.         Cleared the player list whenever a new query is performed (JP).
  287.     Added options on whether to apply filters after a refresh/player/rule
  288.        update (JP) (suggested).
  289.     Added an option on whether to play the sound clip (JP) (suggested).
  290.         Added server list printing code (TC) (suggested).
  291.         Query for specified player (JM) (suggested)
  292.  
  293. v3.02   9/9/96
  294.     Refined busy redial server (no ping, no player/rule query) (JP).
  295.     Refined player/rule update (no ping) (JP).
  296.     More informative messages displayed for failure of load/save (JM).
  297.     Fixed: QSpy crashed on LARGE (> 64K) lists (JP).
  298.     Fixed: First user defined http slot not saving properly (JP).
  299.     Fixed: Multithreading was not stopping properly (TC).
  300.  
  301.  
  302. v3.01   9/7/96
  303.     Fixed the qlist alias corruption problem (JP).
  304.     Fixed the first user defined http slot (it was still trying to
  305.        connect to IronMan's list) (JP).
  306.     Fixed killing threads before their time (JM).
  307.     Fixed case where refresh was attempted with no anchor (JM).
  308.     Fixed problem where QSpy was referring to wrong sound clip (JP).
  309.  
  310. v3.0    9/6/96
  311.  
  312.     Removed IronMan's listing from the sources property page :-( (JP).
  313.     Converted the server listbox to a listctrl (JM).
  314.     Save/restore QSpy window size/position (JM).
  315.     Added menu item to launch the Quake Spy home page! (JP).
  316.     Added menu items to launch my favorite Quake pages (JP).
  317.     Filtered out highlight characters in player names (JP).
  318.     Added the code to fill in the rules listctrl (JP).
  319.     Revamped the menu system and property sheets (JM).
  320.     Implemented the rules listctrl (JM).
  321.     Implemented multithreaded queries (TC).
  322.     Implemented sorting on different columns in the player listctrl (JM).
  323.     Added a splitter bar to dynamically resize the server and player
  324.         list controls (JM).
  325.     Now plays a sound clip while Quake is being launched (TC).
  326.     Actually PLAYED Quake instead of programmed for it!  (Hi Cain!)
  327.     Finally found the bug that was corrupting the server list
  328.        (this was causing multiple problems) (JP).
  329.     Save/Restore the column sizes in the player list ctrl (JP).
  330.     Added an option to either launch Quake or just let the user know
  331.        when a spot opens up during a queue cycle (JP).
  332.     Added a Busy Server-Redial command (suggested) (JP).
  333.     Added filter option to exclude specified map names (suggested) (JP).
  334.     Added filter option to exclude servers with less than a specified
  335.        number of players (JP).
  336.     Implemented new queries to get player information! (TC).
  337.     HEY!  We FINALLY got the Quake protocol information we wanted!
  338.     Modified IP parsing routine to look for port numbers and other
  339.        portions of the program to use this information (JP).
  340.     Rewrote the user interface: (JP)
  341.        Added a menu.
  342.        Added a toolbar menu.
  343.        Added a real status bar.
  344.     Added a button to copy server list to clipboard. (JP)
  345.     In 'qlist' alias, indicate (with an "(L)") which server was launched 
  346.     (suggested). (JP)
  347.     Modified code to allow for unlimited length server sources
  348.     (it was limited to 64K before). (TC)
  349.  
  350. v2.6    8/6/96 (JP)
  351.     Added filter option for map name.
  352.     Added option to auto-load server list upon program start.
  353.     Added option to auto-start update upon program start.
  354.     Added 3 user defined http spots and 1 user defined finger spot
  355.        to the sources property page.
  356.     Added vfuks@monmouth.com finger to Sources property page.
  357.     Added Pipo's web page to Sources property page.
  358.     Wrote a generic routine to parse out IP addresses from any page
  359.        (suggested).
  360.  
  361. v2.5    8/2/96 (JP)
  362.     Return focus to last selected item after a refresh (suggested).
  363.     Added Quake Spy option to autosave server list upon leaving QSpy.
  364.     Added Quake Spy option to ping/not ping servers after loading data.
  365.     Implemented non-blocking socket reads throughout the program.
  366.        (Press Stop immediately after starting an update and you'll
  367.         see what I mean.)
  368.     Improved display speed on delete and refresh functions.
  369.     Allowed the Quake Spy window to be resized and maximized.
  370.  
  371. v2.4    7/25/96 (JP)
  372.     Added a Quake Spy property page with an option to terminate QSpy
  373.        after launching Quake.
  374.     Rewrote the Refresh button list traversal code.
  375.     The filter options are reapplied to the list upon exiting the
  376.        property page.
  377.     Added buttons and code to save/load list of servers.
  378.     Added buttons and code to allow manual addition/deletion of servers.
  379.     Rewrote portions of code to allow easy addition/deletion of servers.
  380.     Added connection scripts option when launching Quake.
  381.     Added Quake property page options to:
  382.     Include connection scripts aliases (TC)
  383.     Allow an automatic disconnect and display a top 10 list
  384.        of servers. (TC)
  385.     Specify which character to bind the above to.
  386.  
  387. v2.3    07/20/96 (JP)
  388.     Added button to refresh (re-ping/re-query) selected servers.
  389.        (updated information is not checked against the filter criteria)
  390.     Added the ability to stop the server information retrieval process.
  391.     Added the ability to stop the server refresh process.
  392.  
  393. v2.2    07/17/96 (JP)
  394.     Added some more status messages to indicate QSpy is doing something.
  395.     Added a proper icon to the application :-)
  396.     Fixed: If the close button was pressed during the pinging process,
  397.            the application window closed, but the process continued to
  398.            run. (TC)
  399.     Fixed: The property page settings were never initialized unless the
  400.            property page was activated.
  401.  
  402. v2.1    07/15/96 (JP)
  403.     Fixed pointer bug (for real) this time (hey, it was late).
  404.     Added a property page accessed through the Configure button.
  405.     Added ][ronMan's server web page to the Sources property page.
  406.     Added Filtering options to the property page and implemented them.
  407.     Added Quake property page to allow definition of command line and
  408.        working directory.
  409.     Added ability to launch Quake by double clicking a list item.
  410.     Added a Ping property page to allow number of pings and timeout
  411.        values to be adjusted.
  412.  
  413. v2.01    07/13/96 (JP)
  414.     Fixed stupid pointer bug that happened when the process was restarted.
  415.  
  416. v2.0    07/12/96 (JP)
  417.     Converted application to a 32-bit Win95/NT application.
  418.     Filter out duplicates in the Stomped output.
  419.     Display results sorted by ping time.
  420.  
  421. v1.0    07/11/96 (JP & TC)
  422.     Initial Public Release as a Console Application.
  423.  
  424. LEGAL DISCLAIMER
  425. ----------------
  426.  
  427.     We're not responsible for anything that happens to your system while
  428.     Quake Spy is running.  Period!  Hey, what do you expect for free?
  429.